ক্লোজার (Clojure) প্রোগ্রামিং ভাষায় কন্ডিশনাল ডেটা ম্যানিপুলেশন এমন একটি কৌশল যেখানে নির্দিষ্ট শর্ত (condition) অনুযায়ী ডেটা ম্যানিপুলেট (পরিবর্তন) করা হয়। এটি সাধারণত if
, cond
, when
, এবং case
ফাংশন ব্যবহার করে করা হয়, যা শর্ত নির্ধারণের মাধ্যমে কোডের প্রবাহ নিয়ন্ত্রণ করে।
ক্লোজারে শর্তাধীন ডেটা ম্যানিপুলেশন খুবই গুরুত্বপূর্ণ, কারণ এটি ডেটা প্রক্রিয়াকরণে কার্যকরী সিদ্ধান্ত নেওয়ার জন্য সাহায্য করে।
if
ফাংশনif
ফাংশন ব্যবহার করে একটি শর্তের ভিত্তিতে দুটি ভিন্ন ফলাফল অর্জন করা যায়। এটি সাধারণত একক শর্তের জন্য ব্যবহৃত হয়।
if
ব্যবহারে কন্ডিশনাল ম্যানিপুলেশন(defn check-even [n]
(if (even? n)
"Even"
"Odd"))
(check-even 4) ; আউটপুট: "Even"
(check-even 5) ; আউটপুট: "Odd"
এখানে, check-even
ফাংশনটি পরীক্ষা করে যে সংখ্যাটি সোজা (even) না বিচ্ছিন্ন (odd)। যদি সংখ্যা সোজা হয়, তাহলে "Even"
আউটপুট হয়, অন্যথায় "Odd"
।
cond
ফাংশনcond
একটি শক্তিশালী কন্ডিশনাল ফাংশন যা একাধিক শর্ত পরীক্ষা করতে ব্যবহৃত হয়। এটি মূলত অনেকগুলো if-else
শর্ত একসাথে চেক করতে সাহায্য করে।
cond
ব্যবহারে কন্ডিশনাল ম্যানিপুলেশন(defn categorize-number [n]
(cond
(neg? n) "Negative"
(zero? n) "Zero"
(pos? n) "Positive"))
(categorize-number -5) ; আউটপুট: "Negative"
(categorize-number 0) ; আউটপুট: "Zero"
(categorize-number 10) ; আউটপুট: "Positive"
এখানে, categorize-number
ফাংশনটি তিনটি শর্ত পরীক্ষা করে: নেতিবাচক (negative), শূন্য (zero), এবং ধনাত্মক (positive)। cond
ফাংশনটি একাধিক শর্তের জন্য সহজেই কাজ করতে সাহায্য করে।
when
এবং when-not
ফাংশনwhen
এবং when-not
ফাংশন দুটি শর্তাধীন স্টেটমেন্ট যেখানে কোনো শর্ত সত্য হলে একটি একক এক্সপ্রেশন কার্যকর হয়। when
শুধুমাত্র শর্ত সত্য হলে কাজ করে এবং when-not
শর্ত মিথ্যা হলে কাজ করে।
when
এবং when-not
ব্যবহারে কন্ডিশনাল ম্যানিপুলেশন(defn print-positive [n]
(when (pos? n)
(println "Positive number")))
(print-positive 10) ; আউটপুট: "Positive number"
(print-positive -5) ; আউটপুট: কিছুই না
(defn print-negative [n]
(when-not (pos? n)
(println "Non-positive number")))
(print-negative -5) ; আউটপুট: "Non-positive number"
(print-negative 10) ; আউটপুট: কিছুই না
এখানে, print-positive
ফাংশনটি n
যদি ধনাত্মক হয় তবে "Positive number" প্রিন্ট করবে, অন্যথায় কিছু করবে না। print-negative
ফাংশনটি n
যদি নেতিবাচক বা শূন্য হয় তবে "Non-positive number" প্রিন্ট করবে।
case
ফাংশনcase
একটি আরও উন্নত কন্ডিশনাল ফাংশন, যা অনেকগুলো শর্ত পরীক্ষা করে এবং নির্দিষ্ট মানের সাথে মিলে গেলে কার্যকর হয়। এটি সাধারণত switch
কন্ডিশনের মতো ব্যবহৃত হয়।
case
ব্যবহারে কন্ডিশনাল ম্যানিপুলেশন(defn describe-day [day]
(case day
"Monday" "Start of the week"
"Friday" "End of the work week"
"Sunday" "Relaxing day"
"Unknown day"))
(describe-day "Monday") ; আউটপুট: "Start of the week"
(describe-day "Friday") ; আউটপুট: "End of the work week"
(describe-day "Saturday") ; আউটপুট: "Unknown day"
এখানে, describe-day
ফাংশনটি একাধিক দিন পরীক্ষার মাধ্যমে আউটপুট প্রদান করে। case
ফাংশনটি সহজে একাধিক শর্ত চেক করতে সাহায্য করে এবং এই উদাহরণে day
এর মান অনুযায়ী একটি উপযুক্ত বার্তা প্রদান করে।
ক্লোজারে কন্ডিশনাল ডেটা ম্যানিপুলেশন করার জন্য বেশ কিছু শক্তিশালী কৌশল উপলব্ধ:
ফাংশন | ব্যবহার | উদাহরণ |
---|---|---|
if | একক শর্ত চেক করার জন্য | if (even? n) "Even" "Odd" |
cond | একাধিক শর্ত পরীক্ষা করার জন্য | cond দিয়ে একাধিক শর্ত চেক করা |
when | একটি শর্ত সত্য হলে এক্সপ্রেশন চালানো | when (pos? n) (println "Positive") |
case | একাধিক মানের মধ্যে সঠিক মান চেক করা | case day দিয়ে বিভিন্ন দিনের বর্ণনা |
এই ফাংশনগুলো শর্তাধীন সিদ্ধান্ত নেয়ার জন্য ক্লোজারকে আরও শক্তিশালী এবং নমনীয় করে তোলে।
common.read_more